package com.gqj.meter.domain;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.gqj.common.annotation.Excel;
import com.gqj.common.core.domain.BaseEntity;
import io.swagger.annotations.ApiModelProperty;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;

import javax.validation.constraints.NotBlank;
import java.util.Date;
import java.util.List;

/**
 * 盘点任务对象 md_chk_task
 *
 * @author lxq
 * @date lxq-02-10
 */
public class MdChkTask extends BaseEntity {
    private static final long serialVersionUID = 1L;

    /**
     * 主键
     */
    @ApiModelProperty("盘点id")
    private Long chkTaskId;

    /**
     * 盘点单号
     */
    @ApiModelProperty("盘点单号")
    private String chkTaskNo;
    /**
     * 库房标识
     */
    @ApiModelProperty("库房标识")
    @Excel(name = "库房标识")
    private Long whId;

    /**
     * 库区标识
     */
    @ApiModelProperty("库区标识")
    private Long whAreaId;

    /**
     * 存放区标识
     */
    @ApiModelProperty("存放区标识")
    private Long storeAreaId;

    /**
     * 储位标识
     */
    @ApiModelProperty("储位标识")
    private Long storeLocId;

    /**
     * 盘点人
     */
    @ApiModelProperty("盘点人")
    @Excel(name = "盘点人")
    private Long chkUserId;

    /**
     * 盘点时间
     */
    @ApiModelProperty("盘点时间")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @Excel(name = "盘点时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
    private Date chkDate;

    /**
     * 任务状态
     */
    @ApiModelProperty("任务状态")
    @Excel(name = "任务状态")
    private String statusCode;

    /**
     * 任务时间
     */
    @ApiModelProperty("任务时间")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @Excel(name = "任务时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
    private Date taskDate;

    /**
     * 资产大类：
     * 01：电能表
     * 02：互感器
     * 03：采集终端
     * 04：采集器
     * 05：通讯模块
     * 10：其他
     */
    @ApiModelProperty("资产大类")
    @Excel(name = "资产大类：01：电能表02：互感器04：采集器")
    private String assetsCategory;

    /**
     * 库房编号
     */
    @ApiModelProperty("库房编号")
    private String whNo;

    /**
     * 库房名称
     */
    @ApiModelProperty("库房名称")
    private String whName;

    /**
     * 库区名称
     */
    @ApiModelProperty("库区名称")
    private String whAreaNo;

    /**
     * 库区名称
     */
    @ApiModelProperty("库区名称")
    private String whAreaname;
    /**
     * 存放区编号
     */
    @ApiModelProperty("存放区编号")
    private String storeAreaNo;

    /**
     * 存放区名称
     */
    @ApiModelProperty("存放区名称")
    private String storeAreaName;

    /**
     * 储位编号
     */
    @ApiModelProperty("储位编号")
    private String storeLocNo;

    /**
     * 储位名称
     */
    @ApiModelProperty("储位名称")
    private String storeLocName;
    /**
     * 详情列表
     */
    private List<MdChkTaskDetails> mdChkTaskDetailsList;

    /**
     * 盘点单主键集合
     */
    @ApiModelProperty("盘点单主键集合")
    private Long[] chkTaskIds;


    /**
     * 盘点范围
     */
    @ApiModelProperty("盘点范围")
    private String checkRange;

    @NotBlank(message = "盘点范围不能为空")
    public String getCheckRange() {
        return checkRange;
    }

    public void setCheckRange(String checkRange) {
        this.checkRange = checkRange;
    }

    public Long[] getChkTaskIds() {
        return chkTaskIds;
    }

    public void setChkTaskIds(Long[] chkTaskIds) {
        this.chkTaskIds = chkTaskIds;
    }

    /**
     * 用户昵称
     */
    @ApiModelProperty("用户昵称")
    @Excel(name = "工号")
    private String nickName;

    /**
     * 使用设备
     * 01：射频门
     * 02：手持机
     * 03：后台
     */
    @ApiModelProperty("使用设备01：射频门02：手持机03：后台")
    private String useEquipment;

    /**
     * 盘点列表
     */
    private List<String> chkRfidList;

    /**
     * 盘亏列表
     */
    private List<String> noChkRfidList;

    private Integer pageNum = 1;
    private Integer pageSize = 10;


    public String getChkTaskNo() {
        return chkTaskNo;
    }

    public void setChkTaskNo(String chkTaskNo) {
        this.chkTaskNo = chkTaskNo;
    }

    public Integer getPageNum() {
        return pageNum;
    }

    public void setPageNum(Integer pageNum) {
        this.pageNum = pageNum;
    }

    public Integer getPageSize() {
        return pageSize;
    }

    public void setPageSize(Integer pageSize) {
        this.pageSize = pageSize;
    }

    public List<String> getChkRfidList() {
        return chkRfidList;
    }

    public void setChkRfidList(List<String> chkRfidList) {
        this.chkRfidList = chkRfidList;
    }

    public List<String> getNoChkRfidList() {
        return noChkRfidList;
    }

    public void setNoChkRfidList(List<String> noChkRfidList) {
        this.noChkRfidList = noChkRfidList;
    }

    public String getUseEquipment() {
        return useEquipment;
    }

    public void setUseEquipment(String useEquipment) {
        this.useEquipment = useEquipment;
    }

    public String getNickName() {
        return nickName;
    }

    public void setNickName(String nickName) {
        this.nickName = nickName;
    }

    public List<MdChkTaskDetails> getMdChkTaskDetailsList() {
        return mdChkTaskDetailsList;
    }

    public void setMdChkTaskDetailsList(List<MdChkTaskDetails> mdChkTaskDetailsList) {
        this.mdChkTaskDetailsList = mdChkTaskDetailsList;
    }

    public String getWhNo() {
        return whNo;
    }

    public void setWhNo(String whNo) {
        this.whNo = whNo;
    }

    public String getWhName() {
        return whName;
    }

    public void setWhName(String whName) {
        this.whName = whName;
    }

    public String getWhAreaNo() {
        return whAreaNo;
    }

    public void setWhAreaNo(String whAreaNo) {
        this.whAreaNo = whAreaNo;
    }

    public String getWhAreaname() {
        return whAreaname;
    }

    public void setWhAreaname(String whAreaname) {
        this.whAreaname = whAreaname;
    }

    public String getStoreAreaNo() {
        return storeAreaNo;
    }

    public void setStoreAreaNo(String storeAreaNo) {
        this.storeAreaNo = storeAreaNo;
    }

    public String getStoreAreaName() {
        return storeAreaName;
    }

    public void setStoreAreaName(String storeAreaName) {
        this.storeAreaName = storeAreaName;
    }

    public String getStoreLocNo() {
        return storeLocNo;
    }

    public void setStoreLocNo(String storeLocNo) {
        this.storeLocNo = storeLocNo;
    }

    public String getStoreLocName() {
        return storeLocName;
    }

    public void setStoreLocName(String storeLocName) {
        this.storeLocName = storeLocName;
    }

    public void setChkTaskId(Long chkTaskId) {
        this.chkTaskId = chkTaskId;
    }

    public Long getChkTaskId() {
        return chkTaskId;
    }

    public void setWhId(Long whId) {
        this.whId = whId;
    }

    public Long getWhId() {
        return whId;
    }

    public void setWhAreaId(Long whAreaId) {
        this.whAreaId = whAreaId;
    }

    public Long getWhAreaId() {
        return whAreaId;
    }

    public void setStoreAreaId(Long storeAreaId) {
        this.storeAreaId = storeAreaId;
    }

    public Long getStoreAreaId() {
        return storeAreaId;
    }

    public void setStoreLocId(Long storeLocId) {
        this.storeLocId = storeLocId;
    }

    public Long getStoreLocId() {
        return storeLocId;
    }

    public void setChkUserId(Long chkUserId) {
        this.chkUserId = chkUserId;
    }

    public Long getChkUserId() {
        return chkUserId;
    }

    public void setChkDate(Date chkDate) {
        this.chkDate = chkDate;
    }

    public Date getChkDate() {
        return chkDate;
    }

    public void setStatusCode(String statusCode) {
        this.statusCode = statusCode;
    }

    public String getStatusCode() {
        return statusCode;
    }

    public void setTaskDate(Date taskDate) {
        this.taskDate = taskDate;
    }

    public Date getTaskDate() {
        return taskDate;
    }

    public void setAssetsCategory(String assetsCategory) {
        this.assetsCategory = assetsCategory;
    }

    @NotBlank(message = "资产大类不能为空")
    public String getAssetsCategory() {
        return assetsCategory;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this, ToStringStyle.MULTI_LINE_STYLE)
                .append("chkTaskId", getChkTaskId())
                .append("whId", getWhId())
                .append("whAreaId", getWhAreaId())
                .append("storeAreaId", getStoreAreaId())
                .append("storeLocId", getStoreLocId())
                .append("chkUserId", getChkUserId())
                .append("chkDate", getChkDate())
                .append("statusCode", getStatusCode())
                .append("taskDate", getTaskDate())
                .append("remark", getRemark())
                .append("assetsCategory", getAssetsCategory())
                .toString();
    }
}
